package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.ClubActivities;

/**
 * 社团活动Service接口
 * 
 * @author ruoyi
 * @date 2025-06-25
 */
public interface IClubActivitiesService 
{
    /**
     * 查询社团活动
     * 
     * @param activityId 活动主键
     * @return 社团活动
     */
    public ClubActivities selectClubActivitiesByActivityId(Long activityId);

    /**
     * 查询社团活动列表
     * 
     * @param clubActivities 社团活动
     * @return 社团活动集合
     */
    public List<ClubActivities> selectClubActivitiesList(ClubActivities clubActivities);

    /**
     * 根据社团ID查询活动列表
     * 
     * @param clubId 社团ID
     * @return 社团活动集合
     */
    public List<ClubActivities> selectClubActivitiesByClubId(Long clubId);

    /**
     * 查询即将开始的活动
     * 
     * @param limit 限制数量
     * @return 社团活动集合
     */
    public List<ClubActivities> selectUpcomingActivities(Integer limit);

    /**
     * 查询公开的活动列表（无权限控制）
     * 
     * @param clubActivities 社团活动
     * @return 社团活动集合
     */
    public List<ClubActivities> selectPublicActivitiesList(ClubActivities clubActivities);

    /**
     * 查询用户参与的活动
     * 
     * @param userId 用户ID
     * @return 社团活动集合
     */
    public List<ClubActivities> selectUserParticipatedActivities(Long userId);

    /**
     * 新增社团活动
     * 
     * @param clubActivities 社团活动
     * @return 结果
     */
    public int insertClubActivities(ClubActivities clubActivities);

    /**
     * 修改社团活动
     * 
     * @param clubActivities 社团活动
     * @return 结果
     */
    public int updateClubActivities(ClubActivities clubActivities);

    /**
     * 批量删除社团活动
     * 
     * @param activityIds 需要删除的活动主键集合
     * @return 结果
     */
    public int deleteClubActivitiesByActivityIds(Long[] activityIds);

    /**
     * 删除社团活动信息
     * 
     * @param activityId 活动主键
     * @return 结果
     */
    public int deleteClubActivitiesByActivityId(Long activityId);
}
